package cn.b.sky.mes.andon.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import cn.b.sky.mes.andon.model.MessageRule;
import cn.b.sky.mes.andon.model.condition.MessageRuleCondition;

/**
 * 
 * <strong>Title : MessageRuleDao.java<br></strong>
 * <strong>Package : cn.b.sky.mes.andon.dao<br></strong>
 * <strong>Description : </strong>消息规则相关数据库操作接口定义<br> 
 * <strong>Create on : 2016-10-17 下午02:49:27<br></strong>
 * <p>
 * @author JunLin.Yang<br>
 * @version <strong>v1.0.0</strong><br>
 */
public interface MessageRuleDao {

  /**
   * 
   * <strong>Title : insertMessageRule<br></strong>
   * <strong>Description : </strong>新增消息规则数据<br> 
   * <strong>Create on : 2016-10-17 下午02:49:27<br></strong>
   * <p>
   * @param data 消息规则
   * @return
   * int 新增记录数
   * @throws 
   * @author JunLin.Yang<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public int insertMessageRule(MessageRule data);

  /**
   * 
   * <strong>Title : updateMessageRule<br></strong>
   * <strong>Description : </strong>更新消息规则数据<br> 
   * <strong>Create on : 2016-10-17 下午02:49:27<br></strong>
   * <p>
   * @param data 消息规则
   * @return
   * int 更新的记录数
   * @throws 
   * @author JunLin.Yang<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public int updateMessageRule(MessageRule data);

  /**
   * 
   * <strong>Title : deleteMessageRule<br></strong>
   * <strong>Description : </strong>删除消息规则数据<br> 
   * <strong>Create on : 2016-10-17 下午02:49:27<br></strong>
   * <p>
   * @param data 消息规则
   * @return
   * int 删除的记录数
   * @throws 
   * @author JunLin.Yang<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public int deleteMessageRule(MessageRule data);

  /**
   * 
   * <strong>Title : getMessageRulesCount<br></strong>
   * <strong>Description : </strong>查询所有的消息规则数据记录数<br> 
   * <strong>Create on : 2016-10-17 下午02:49:27<br></strong>
   * <p>
   * @return
   * long 数据记录数
   * @throws 
   * @author JunLin.Yang<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public long getMessageRulesCount();

  /**
   * 
   * <strong>Title : selectMessageRules<br></strong>
   * <strong>Description : </strong>查询所有的消息规则数据<br> 
   * <strong>Create on : 2016-10-17 下午02:49:27<br></strong>
   * <p>
   * @return
   * List<MessageRule> 所有的消息规则数据
   * @throws 
   * @author JunLin.Yang<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public List<MessageRule> selectMessageRules();

  /**
   * 
   * <strong>Title : deleteMessageRuleByPrimaryKey<br></strong>
   * <strong>Description : </strong>根据主键信息删除消息规则数据<br> 
   * <strong>Create on : 2016-10-17 下午02:49:27<br></strong>
   * <p>
  * @param siteCode 工厂编号
  * @param ruleCode 消息规则编号
  * @return
   * int 删除的记录数
   * @throws 
   * @author JunLin.Yang<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public int deleteMessageRuleByPrimaryKey(@Param("siteCode") String siteCode, @Param("ruleCode") String ruleCode);

  /**
   * 
   * <strong>Title : getMessageRuleByPrimaryKey<br></strong>
   * <strong>Description : </strong>根据主键查询消息规则对象<br> 
   * <strong>Create on : 2016-10-17 下午02:49:27<br></strong>
   * <p>
   * @param siteCode 工厂编号
   * @param ruleCode 消息规则编号
   * @return
   * MessageRule 消息规则对象
   * @throws 
   * @author JunLin.Yang<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public MessageRule getMessageRuleByPrimaryKey(@Param("siteCode") String siteCode, @Param("ruleCode") String ruleCode);

  /**
   * 
   * <strong>Title : existMessageRuleByPrimaryKey<br></strong>
   * <strong>Description : </strong>根据主键查询消息规则对象是否存在<br> 
   * <strong>Create on : 2016-10-17 下午02:49:27<br></strong>
   * <p>
   * @param siteCode 工厂编号
   * @param ruleCode 消息规则编号
   * @return
   * boolean 数据是否存在
   * @throws 
   * @author JunLin.Yang<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public boolean existMessageRuleByPrimaryKey(@Param("siteCode") String siteCode, @Param("ruleCode") String ruleCode);

  /**
   * 
   * <strong>Title : existsMessageRuleByCondition<br></strong>
   * <strong>Description : </strong>根据查询对象查询消息规则数据是否存在<br> 
   * <strong>Create on : 2016-10-17 下午02:49:27<br></strong>
   * <p>
   * @param condition 消息规则查询对象
   * boolean 数据是否存在
   * @throws 
   * @author JunLin.Yang<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public boolean existsMessageRuleByCondition(MessageRuleCondition condition);

  /**
   * 
   * <strong>Title : deleteMessageRuleByCondition<br></strong>
   * <strong>Description : </strong>根据查询对象删除消息规则数据<br> 
   * <strong>Create on : 2016-10-17 下午02:49:27<br></strong>
   * <p>
   * @param condition 消息规则查询对象
   * int 删除的记录数
   * @throws 
   * @author JunLin.Yang<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public int deleteMessageRuleByCondition(MessageRuleCondition condition);

  /**
   * 
   * <strong>Title : getMessageRuleByCondition<br></strong>
   * <strong>Description : </strong>根据查询条件查询对应消息规则对象<br> 
   * <strong>Create on : 2016-10-17 下午02:49:27<br></strong>
   * <p>
   * @param condition 消息规则查询条件
   * @return
   * MessageRule 消息规则对象
   * @throws 
   * @author JunLin.Yang<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public MessageRule getMessageRuleByCondition(MessageRuleCondition condition);

  /**
   * 
   * <strong>Title : selectMessageRulesByCondition<br></strong>
   * <strong>Description : </strong>根据查询条件查询消息规则集合<br> 
   * <strong>Create on : 2016-10-17 下午02:49:27<br></strong>
   * <p>
   * @param condition 消息规则查询条件
   * @return 
   * List<MessageRule> 消息规则集合
   * @throws 
   * @author JunLin.Yang<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public List<MessageRule> selectMessageRulesByCondition(MessageRuleCondition condition);

  /**
   * 
   * <strong>Title : selectMessageRulePageDataByCondition<br></strong>
   * <strong>Description : </strong>根据查询条件查询相应分页的消息规则集合<br> 
   * <strong>Create on : 2016-10-17 下午02:49:27<br></strong>
   * <p>
   * @param condition 消息规则查询条件
   * @return 
   * List<MessageRule> 消息规则集合
   * @throws 
   * @author JunLin.Yang<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public List<MessageRule> selectMessageRulePageDataByCondition(MessageRuleCondition condition);
  
  /**
   * 
   * <strong>Title : selectMessageRuleWithAssociatedInfoPageDataByCondition<br></strong>
   * <strong>Description : </strong>根据查询条件查询相应分页的消息规则(包含关联信息)集合<br> 
   * <strong>Create on : 2016-10-17 下午02:49:27<br></strong>
   * <p>
   * @param condition 消息规则查询条件
   * @return 
   * List<MessageRule> 消息规则集合
   * @throws 
   * @author JunLin.Yang<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public List<MessageRule> selectMessageRuleWithAssociatedInfoPageDataByCondition(MessageRuleCondition condition);
  

  /**
   * 
   * <strong>Title : getMessageRulesCountByCondition<br></strong>
   * <strong>Description : </strong>根据查询条件查询相应的消息规则记录数<br> 
   * <strong>Create on : 2016-10-17 下午02:49:27<br></strong>
   * <p>
   * @param condition 消息规则查询条件
   * @return
   * long 数据记录数
   * @throws 
   * @author JunLin.Yang<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public long getMessageRulesCountByCondition(MessageRuleCondition condition);

}
